<?php

class MurosBN extends uEstratigraficaBN {
	
	private $listaArmazon = false;
	private $listaMortero = false;
	private $listaAdobes = false;
	
	public function crearMuro( uEstratigrafica $objUE) {
	
		$resultado = 1;
		
		try{
				
			$pk = $this->generarPK();
			$this->validarCodUe($objUE->getCodUEText(), $pk);
			$objUE->setCodue($pk);
		
			$objUE->setCodTipoue(self::TIPO_MURO);
		
			$objUE->save();
			
			
		
			$this->crearBaseUE();
			
			$this->crearListaArmazon();
			$this->crearListaMortero();
			$this->crearListaAdobes();
		
			
		
		}catch (Exception $e){
			
			$this->mensaje = $e->getMessage();
			$resultado = false;
				
		}
		
		return $resultado;
		
	}
	
	public function actualizarMuro( uEstratigrafica $objUE) {
	
		$rs = 1;
	  	
		try{
			
			$this->validarCodUe($objUE->getCodUEText(),$objUE->getCodue());
			$objUE->save();
			$this->actualizarBaseUE();
						
			$this->actualizarListaArmazon($objUE);
			$this->actualizarListaMortero($objUE);
			$this->actualizarListaAdobes($objUE);			
			
		}catch(Exception $e){
			$this->mensaje = $e->getMessage(); 
			$rs = false;
			
		}
		return $rs;
	
	}
	

	//---------------------------Armazon---------------------------------//
	public function setListaArmazon($listaArmazon){
		$this->listaArmazon = $listaArmazon;
	}
	
	public function setListaMortero($listaMortero) {
		$this->listaMortero = $listaMortero;
	}
	
	public function setListaAdobes($listaAdobes) {
		$this->listaAdobes = $listaAdobes;
	}	
	
	public function crearListaArmazon(){
		if($this->listaMortero){
	
			// grabar lista de relaciones fisicas
			$oBN = new ArmazonBN();
			foreach($this->listaArmazon as $oItem) {
				$oItem->setCodue($this->codUe);
				$oArmazonBN->crearArmazon($oItem);
			}
			
		}
	}
	
	public function actualizarListaArmazon($objUE){
		if($this->listaArmazon){
	
			$oArmazonBN = new ArmazonBN();
			$lista = $oArmazonBN->obtenerArmazon($objUE->getCodue());
			foreach($lista as $oItem) {
				$oItem->delete();
			}
			
			foreach($this->listaArmazon as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oArmazonBN->crearArmazon($oItem);
			}
			
		}
	}
	
	public function crearListaMortero(){
		if($this->listaMortero){
	
			// grabar lista de relaciones fisicas
			$oBN = new ComposicionBN();
			foreach($this->listaMortero as $oItem) {
				$oItem->setCodue($this->codUe);
				$oBN->crearComposicion($oItem);
			}
				
		}
	}
	
	public function actualizarListaMortero($objUE){
		if($this->listaMortero){
	
			$oBN = new ComposicionBN();
			$lista = $oBN->obtenerComposicion($objUE->getCodue(), "MME");
			foreach($lista as $oItem) {
				$oItem->delete();
			}
				
			foreach($this->listaMortero as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oBN->crearComposicion($oItem);
			}
				
		}
	}
	
	public function crearListaAdobes(){
		if($this->listaAdobes){
	
			$oBN = new ComposicionBN();
			foreach($this->listaAdobes as $oItem) {
				$oItem->setCodue($this->codUe);
				$oBN->crearComposicion($oItem);
			}
	
		}
	}
	
	public function actualizarListaAdobes($objUE){
		if($this->listaAdobes){
	
			$oBN = new ComposicionBN();
			$lista = $oBN->obtenerComposicion($objUE->getCodue(), "MAA");
			foreach($lista as $oItem) {
				$oItem->delete();
			}
	
			foreach($this->listaAdobes as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oBN->crearComposicion($oItem);
			}
	
		}
	}
		
}
?>